import java.util.Scanner;

public class program01 {
    public static void main(String[] args) {
//        题目：古典问题：有一对兔子，从出生后第3个月起每个月都生一对兔子，小兔子长到第三个月后每个月又生一对兔子，假如兔子都不死，问每个月的兔子对数为多少？
//        程序分析： 兔子的规律为数列1,1,2,3,5,8,13,21....

        int rab3 = 0;// 成年兔子
        int rab2 = 0;// 青年兔子
        int rab1 = 1;// 新生兔子
        int mon = 0;

        System.out.println("输入月份：");
        mon = new Scanner(System.in).nextInt();

        for (int i = 1; i <= mon; i++) {
            // 有青年兔子，则成长为成年兔子
            if (rab2 > 0) {
                rab3 += rab2;
                rab2 = 0;
            }
            // 有新生兔子，则成长为青年兔子
            if (rab1 > 0) {
                rab2 += rab1;
                rab1 = 0;
            }
            // 有多少对成年兔子，则生多少对新生兔子
            if (rab3 >= 1) {
                rab1 += rab3;
            }
            System.out.println("第"+ i +"个月后，成年兔子有"+ rab3 +"对，青年兔子有"+ rab2 +"对，新生兔子有"+ rab1 +"对");
        }
        System.out.println("共有"+ (rab1+rab2+rab3) +"对兔子");
    }
}
